package main

import (
	"flag"
	"fmt"
	"strings"
)

type HandsomeBoys []string

// 实现 string 方法
func (h *HandsomeBoys) String() string {
	return fmt.Sprintf("%v", *h)
}

// 实现 set 方法, set 接口决定了如何解析 flag 的值
func (h *HandsomeBoys) Set(s string) error {
	for _, v := range strings.Split(s, ",") {
		*h = append(*h, v)
	}
	return nil
}

var boys HandsomeBoys

func init() {
	// 绑定变量 boys
	flag.Var(&boys, "boys", "请输入一组帅气的男孩子名字: -boya:彭于晏,吴彦祖 ...")
}

func main() {
	flag.Parse()
	fmt.Println(boys)
}
